{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LightBGM应用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\fixes.py:313: FutureWarning: numpy not_equal will not check object identity in the future. The comparison did not return the same result as suggested by the identity (`is`)) and will change.\n",
      "  _nan_object_mask = _nan_object_array != _nan_object_array\n"
     ]
    }
   ],
   "source": [
    "import datetime\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import lightgbm as lgb\n",
    "from sklearn.datasets import load_breast_cancer\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载数据集\n",
    "breast = load_breast_cancer()\n",
    "# 获取特征值和目标指\n",
    "X,y = breast.data,breast.target\n",
    "# 获取特征名称\n",
    "feature_name = breast.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据集划分\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据格式转换\n",
    "lgb_train = lgb.Dataset(X_train, y_train)\n",
    "lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 参数设置\n",
    "boost_round = 50 # 迭代次数              \n",
    "early_stop_rounds = 10 # 验证数据若在early_stop_rounds轮中未提高，则提前停止\n",
    "\n",
    "params = {\n",
    "    'boosting_type': 'gbdt',  # 设置提升类型\n",
    "    'objective': 'regression',  # 目标函数\n",
    "    'metric': {'l2', 'auc'},  # 评估函数\n",
    "    'num_leaves': 31,  # 叶子节点数\n",
    "    'learning_rate': 0.05,  # 学习速率\n",
    "    'feature_fraction': 0.9,  # 建树的特征选择比例\n",
    "    'bagging_fraction': 0.8,  # 建树的样本采样比例\n",
    "    'bagging_freq': 5,  # k 意味着每 k 次迭代执行bagging\n",
    "    'verbose': 1  # <0 显示致命的, =0 显示错误 (警告), >0 显示信息\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1]\ttrain's auc: 0.94953\ttrain's l2: 0.762479\tvalidate's auc: 0.95443\tvalidate's l2: 0.731322\n",
      "Train until valid scores didn't improve in 10 rounds.\n",
      "[2]\ttrain's auc: 0.963417\ttrain's l2: 0.728926\tvalidate's auc: 0.964433\tvalidate's l2: 0.699406\n",
      "[3]\ttrain's auc: 0.98023\ttrain's l2: 0.697226\tvalidate's auc: 0.98444\tvalidate's l2: 0.669713\n",
      "[4]\ttrain's auc: 0.979143\ttrain's l2: 0.66695\tvalidate's auc: 0.983963\tvalidate's l2: 0.639856\n",
      "[5]\ttrain's auc: 0.980021\ttrain's l2: 0.638529\tvalidate's auc: 0.983963\tvalidate's l2: 0.613014\n",
      "[6]\ttrain's auc: 0.981829\ttrain's l2: 0.611936\tvalidate's auc: 0.98301\tvalidate's l2: 0.588542\n",
      "[7]\ttrain's auc: 0.985601\ttrain's l2: 0.586151\tvalidate's auc: 0.988568\tvalidate's l2: 0.563377\n",
      "[8]\ttrain's auc: 0.986311\ttrain's l2: 0.562219\tvalidate's auc: 0.98825\tvalidate's l2: 0.541396\n",
      "[9]\ttrain's auc: 0.986959\ttrain's l2: 0.539217\tvalidate's auc: 0.990156\tvalidate's l2: 0.518326\n",
      "[10]\ttrain's auc: 0.987126\ttrain's l2: 0.517841\tvalidate's auc: 0.991108\tvalidate's l2: 0.498694\n",
      "[11]\ttrain's auc: 0.988286\ttrain's l2: 0.496492\tvalidate's auc: 0.993014\tvalidate's l2: 0.478704\n",
      "[12]\ttrain's auc: 0.988046\ttrain's l2: 0.476393\tvalidate's auc: 0.993649\tvalidate's l2: 0.459792\n",
      "[13]\ttrain's auc: 0.988568\ttrain's l2: 0.457508\tvalidate's auc: 0.994601\tvalidate's l2: 0.442167\n",
      "[14]\ttrain's auc: 0.988673\ttrain's l2: 0.439755\tvalidate's auc: 0.994919\tvalidate's l2: 0.42532\n",
      "[15]\ttrain's auc: 0.988359\ttrain's l2: 0.422967\tvalidate's auc: 0.995078\tvalidate's l2: 0.40924\n",
      "[16]\ttrain's auc: 0.987816\ttrain's l2: 0.407529\tvalidate's auc: 0.995078\tvalidate's l2: 0.394642\n",
      "[17]\ttrain's auc: 0.988652\ttrain's l2: 0.392988\tvalidate's auc: 0.995237\tvalidate's l2: 0.38097\n",
      "[18]\ttrain's auc: 0.988485\ttrain's l2: 0.379375\tvalidate's auc: 0.995237\tvalidate's l2: 0.36829\n",
      "[19]\ttrain's auc: 0.98861\ttrain's l2: 0.366827\tvalidate's auc: 0.995237\tvalidate's l2: 0.356246\n",
      "[20]\ttrain's auc: 0.988913\ttrain's l2: 0.354854\tvalidate's auc: 0.994601\tvalidate's l2: 0.345764\n",
      "[21]\ttrain's auc: 0.989269\ttrain's l2: 0.343275\tvalidate's auc: 0.994601\tvalidate's l2: 0.334725\n",
      "[22]\ttrain's auc: 0.989352\ttrain's l2: 0.332701\tvalidate's auc: 0.994601\tvalidate's l2: 0.32471\n",
      "[23]\ttrain's auc: 0.989373\ttrain's l2: 0.322552\tvalidate's auc: 0.994601\tvalidate's l2: 0.315033\n",
      "[24]\ttrain's auc: 0.989331\ttrain's l2: 0.313069\tvalidate's auc: 0.995237\tvalidate's l2: 0.30568\n",
      "[25]\ttrain's auc: 0.989415\ttrain's l2: 0.304226\tvalidate's auc: 0.995237\tvalidate's l2: 0.297238\n",
      "[26]\ttrain's auc: 0.98954\ttrain's l2: 0.296083\tvalidate's auc: 0.994919\tvalidate's l2: 0.289386\n",
      "[27]\ttrain's auc: 0.989519\ttrain's l2: 0.28868\tvalidate's auc: 0.995237\tvalidate's l2: 0.2823\n",
      "Early stopping, best iteration is:\n",
      "[17]\ttrain's auc: 0.988652\ttrain's l2: 0.392988\tvalidate's auc: 0.995237\tvalidate's l2: 0.38097\n"
     ]
    }
   ],
   "source": [
    "# 模型训练:加入提前停止的功能\n",
    "results = {}\n",
    "gbm = lgb.train(params,\n",
    "                lgb_train,\n",
    "                num_boost_round= boost_round,\n",
    "                valid_sets=(lgb_eval, lgb_train),\n",
    "                valid_names=('validate','train'),\n",
    "                early_stopping_rounds = early_stop_rounds,\n",
    "                evals_result= results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.1931303 ,  0.53418087,  0.57603579,  0.50099789,  0.55426404,\n",
       "        0.55102906,  0.51473063,  0.53329354,  0.53329354,  0.59311616,\n",
       "        0.25982204,  0.49573711,  0.53921752,  0.24239056,  0.28271959,\n",
       "        0.02524547,  0.51844824,  0.02524547,  0.02524547,  0.02524547,\n",
       "        0.07855282,  0.02524547,  0.4593166 ,  0.55270372,  0.02524547,\n",
       "        0.58934934,  0.58934934,  0.1931303 ,  0.57603579,  0.02524547,\n",
       "        0.58934934,  0.02524547,  0.50141707,  0.16518063,  0.58048329,\n",
       "        0.1931303 ,  0.55361517,  0.16518063,  0.57980261,  0.02524547,\n",
       "        0.36036456,  0.59311616,  0.23862374,  0.58934934,  0.32473473,\n",
       "        0.02524547,  0.58934934,  0.52884603,  0.55935125,  0.02524547,\n",
       "        0.02524547,  0.07855282,  0.16518063,  0.53577178,  0.54302601,\n",
       "        0.58048329,  0.53706036,  0.54215959,  0.54215959,  0.02524547,\n",
       "        0.1931303 ,  0.02524547,  0.59311616,  0.56069689,  0.02524547,\n",
       "        0.54592641,  0.02524547,  0.02524547,  0.02524547,  0.53706036,\n",
       "        0.37143972,  0.02524547,  0.56644951,  0.42420714,  0.02524547,\n",
       "        0.53418087,  0.57037788,  0.43590347,  0.58934934,  0.59311616,\n",
       "        0.09683398,  0.02524547,  0.02524547,  0.58934934,  0.02524547,\n",
       "        0.56429236,  0.57603579,  0.58425012,  0.02524547,  0.02524547,\n",
       "        0.58934934,  0.26844828,  0.41027539,  0.02524547,  0.53706036,\n",
       "        0.51473063,  0.02524547,  0.36314475,  0.52205552,  0.57198412,\n",
       "        0.59311616,  0.51112535,  0.52884603,  0.51642192,  0.02524547,\n",
       "        0.46433421,  0.02524547,  0.45179564,  0.25863297,  0.16518063,\n",
       "        0.56190897,  0.02524547,  0.02524547,  0.37943118])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 模型预测\n",
    "y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)\n",
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:2: UserWarning: more than one metric available, picking one to plot.\n",
      "  from ipykernel import kernelapp as app\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9eb50f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 模型评估\n",
    "lgb.plot_metric(results)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9fcee48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制重要的特征\n",
    "lgb.plot_importance(gbm,importance_type = \"split\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
